package com.example.canalclientsync.canal.po;

import com.example.canalclientsync.utils.CommonUtils;
import org.springframework.data.elasticsearch.core.document.Document;

import java.util.Map;

/**
 * @author chen.cr
 * @since 2023/9/18
 */
public abstract class Documentable {

    /**
     * 自定义对象转换为document  （es xContent无法识别自定义对象）
     *
     * @param key
     * @return
     */
    public Document getDocument(String key) {
        Document document = Document.create();
        document.put(key, toMap());
        return document;
    }

    public Map<String, Object> toMap() {
        return CommonUtils.beanToMap(this);
    }

}
